<?xml version="1.0"?>
<!--
  Any copyright is dedicated to the Public Domain.
  http://creativecommons.org/publicdomain/zero/1.0/
-->
<window title="DOM Worker Threads Test"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        onload="test();">

  <script type="application/javascript"
          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
  <script type="application/javascript"
          src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"/>
  <script type="application/javascript" src="dom_worker_helper.js"/>

  <script type="application/javascript">
  <![CDATA[

    function test() {
      const message = "woohoo";

      var observer = {
        observe: function(subject, topic, data) {
          is(topic, "message", "Correct type of event");
          is(data, message, "Correct message");

          AddonManager.getAddonByID("workerbootstrap-test@mozilla.org",
                                    function(addon) {
            addon.uninstall();

            const stages = [ "install", "startup", "shutdown", "uninstall" ];
            const symbols = [ "Worker", "ChromeWorker" ];

            for (var stage of stages) {
              for (var symbol of symbols) {
                is(Services.prefs.getBoolPref("workertest.bootstrap." + stage +
                                              "." + symbol),
                   true,
                   "Symbol '" + symbol + "' present during '" + stage + "'");
              }
            }

            SimpleTest.finish();
          });
        },
        QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver])
      };

      var workertestbootstrap = Cc["@mozilla.org/test/workertestbootstrap;1"].
                                createInstance(Ci.nsIObserver);

      workertestbootstrap.observe(observer, "postMessage", message);

      SimpleTest.waitForExplicitFinish();
    }

  ]]>
  </script>

  <body xmlns="http://www.w3.org/1999/xhtml">
    <p id="display"></p>
    <div id="content" style="display:none;"></div>
    <pre id="test"></pre>
  </body>
  <label id="test-result"/>
</window>
